Crate dioxus_desktop
source ·Expand description
Dioxus Desktop Renderer
Render the Dioxus VirtualDom using the platform’s native WebView implementation.
Desktop
One of Dioxus’ flagship features is the ability to quickly build a native desktop app that looks and feels the same across platforms. Apps built with Dioxus are typically <5mb in size and use existing system resources, so they won’t hog extreme amounts of RAM or memory.
Dioxus Desktop is built off Tauri. Right now there aren’t any Dioxus abstractions over the menubar, handling, etc, so you’ll want to leverage Tauri - mostly Wry and Tao directly. An upcoming release of Dioxus-Desktop will include components and hooks for notifications, global shortcuts, menubar, etc.
Getting Set up
Getting Set up with Dioxus-Desktop is quite easy. Make sure you have Rust and Cargo installed, and then create a new project:
$ cargo new --bin demo
$ cd app
Add Dioxus and the desktop
renderer feature:
$ cargo add dioxus
$ cargo add dioxus-desktop
Edit your main.rs
:
// main.rs
use dioxus::prelude::*;
fn main() {
dioxus_desktop::launch(app);
}
fn app(cx: Scope) -> Element {
cx.render(rsx!{
div {
"hello world!"
}
})
}
To configure the webview, menubar, and other important desktop-specific features, checkout out some of the launch configuration in the API reference.
Future Steps
Make sure to read the Dioxus Guide if you already haven’t!
Re-exports
pub use wry;
Modules
- Re-exported Tao APIs
Structs
- The configuration for the desktop application.
- An imperative interface to the current window.
- A size represented in logical pixels.
- A size represented in physical pixels.
- A global shortcut. This will be automatically removed when it is dropped.
- An global id for a shortcut.
- Object that allows you to build windows.
- A wry event handler that is scoped to the current component and window. The event handler will only receive events for the window it was created for and global events.
- The unique identifier of a window event handler. This can be used to later remove the handler.
Enums
- An error that can occur when registering a shortcut.
- The behaviour of the application when the last window is closed.
Functions
- Launch the WebView and run the event loop.
- Launch the WebView and run the event loop, with configuration.
- Launch the WebView and run the event loop, with configuration and root props.
- Get a closure that executes any JavaScript in the WebView context.
- Get an imperative handle to the current window
- Get a closure that executes any JavaScript in the WebView context.
Type Aliases
- A handle to the
DesktopService
that can be passed around.